This invention relates to computer operating systems, and particularly, to computer methods for detecting baud rates for communicating with client devices over a serial null modem connection that uses a Unimodem null serial protocol.
Handheld computing devices have grown rapidly in popularity in recent years. These devices enable users to port many of the tools and features of their desktop computers on excursions away from home or the office. While these devices offer tremendous advantages for portability, most mobile users still rely on desktop computers when working at home or the office.
As a result of operating multiple computers, users often enter different information into different computers depending upon their situation and location. For instance, a user may enter tasks or other data into a work computer, appointments and contact information into a portable computer while on the road, and calendar events into a home computer when at home. Yet, when the user wants to see their schedule, the user wants to view the most up-to-date schedule, regardless of where the information was entered or where the user accesses it.
To avoid making the user enter the same data multiple times into different computers, most handheld computers are configured to swap information with desktop computers. Programs executing on one or both computers synchronize the exchange of schedules, appointments, and other data contents so that any unique information currently residing on one of the computers is shared with the other to bring both computers up to date.
Typically, handheld computers connect to a host desktop computer via a serial connection. One common serial connection is known as a xe2x80x9cnull modem connectionxe2x80x9d, which uses a Unimodem null serial protocol to exchange data. According to this protocol, the handheld computer initiates communication by sending a message called xe2x80x9cCLIENTxe2x80x9d. The host computer replies with a message xe2x80x9cSxe2x80x9d, xe2x80x9cExe2x80x9d, xe2x80x9cRxe2x80x9d, xe2x80x9cVxe2x80x9d, xe2x80x9cExe2x80x9d, xe2x80x9cRxe2x80x9d, xe2x80x9cCxe2x80x9d, xe2x80x9cLxe2x80x9d, xe2x80x9cIxe2x80x9d, xe2x80x9cExe2x80x9d, xe2x80x9cNxe2x80x9d, xe2x80x9cTxe2x80x9d. If both sides understand the transmission, a synchronization session is begun to synchronize the contents of the two computers.
One problem surrounding this serial protocol is that the message exchange is baud rate dependent. That is, both the handheld computer and the host computer must be operating at the same baud rate for each to understand the other""s message. However, there are many different baud rates at which the two computers may communicate. For example, handheld computers that run the Windows CE operating system from Microsoft Corporation can support four different baud rates: 19.2K, 38K, 56K, and 115K. If the handheld computer is operating at one baud rate (e.g., 19.2K) and the host computer is operating at another baud rate (e.g., 56K), the two computers will not be able to communicate with one another. Unfortunately, connection failures due to serial baud rate mismatches tend to be common.
When a baud rate mismatch occurs, the user typically tries to adjust the baud rate of one of the computers. It tends to be harder to change the baud rate on the host computer, so the user generally ends up manually reconfiguring the handheld computer to a different baud rate.
Another problem is that an increasing number of users own more than one handheld computer. In some cases, the handheld computers may be set to different baud rates, whereas the host computer can be set to only one of these baud rates at a given time. As a result, the user is forced to adjust baud rates more often to accommodate the multiple portable devices.
Thus, there is a need for an improved system and method for connecting handheld computers to host computers over a null modem unimodem client connection.
This invention concerns a baud rate detection system and method for automatically detecting the baud rate at which a client computing device is communicating with a host computer over a serial connection.
In one implementation, the host computer is coupled to the client computing device via a serial connection, which employs a Unimodem null serial protocol to exchange data. The baud rate detection system includes a baud rate selector to select among multiple baud rates that the client computing device might use to transmit a predefined message (e.g., a text string xe2x80x9cCxe2x80x9d, xe2x80x9cLxe2x80x9d, xe2x80x9cIxe2x80x9d, xe2x80x9cExe2x80x9d, xe2x80x9cNxe2x80x9d, xe2x80x9cTxe2x80x9d). The system also includes a message detector to listen at the currently selected baud rate for the predefined message.
During operation, after the client connects to the host computer, the baud rate selector chooses a first baud rate from among the multiple possible baud rates. The message detector listens at this baud rate for the message. If the message detector receives the message, the current baud rate is the correct rate and is used for continuing communications with the client computing device. On the other hand, if the message detector fails to detect the message after a predetermined time period or detects characters not included in the predefined message, the baud rate selector chooses a new baud rate and the message detector begins listening at the new baud rate. This process continues until the baud rate detection system finds the appropriate baud rate for communicating with the client computing device.
The automatic baud rate detection is advantageous because it effectively eliminates connection failures caused by baud rate mismatches. This obviates the need for a user to manually reconfigure either the host or client computing device when baud rate mismatches occur.